SAS and SATA are computer bus technologies primarily designed for transferring data to and from devices, such as a computer and a storage device. A SAS initiator generally is a task manager of other, target, devices connected to the system. The target device receives task management requests from the initiator and sends responses to those requests. SAS and SATA protocols were originally designed for Host to Target connections. SAS currently uses the same physical layers (Phy) as SATA with the assumption that all cables are straight. These devices connect through “Host” and “Target” Phy, where the Target Phy is wired backwards from the Host Phy. Therefore, the Host Phy transmit pin aligns with the Target Phy receiver pin, and the Host Phy receive pin aligns with the Target Phy transmit pin. When referring to SAS devices or protocols, it is intended to include SAS and SATA devices, protocols, and configurations.
These systems expanded to backend setups adding analyzers and expanders between the Host and Target device. When adding these other devices into a system, users end up with a Host Phy (such as an HBA) needing to connect to another Host Phy (such as an expander or analyzer). These configurations require a crossover cable as the direct connection would connect the transmit pins from both the Hosts together. Cascading between expanders also requires crossover cables unless some ports are configured to be upstream and others are configured to be downstream.
A SAS expander can generally be described as a switch that allows initiators and targets to communicate with each other in a network, and allows additional initiators and targets to be added to the network. A SAS expander is added to the host system through the host bus adapter (HBA), which connects the host to other network and storage devices. The SAS-2 protocol, the specification of which is currently available in draft form (Revision 12, Sep. 28, 2007) at www.t10.org and identified as T10/1760-D or Reference Number ISO/IEC 14776-152:200x, the contents of which are incorporated by reference herein, supports networks including cascades and trees (as well as trees of cascades) of SAS expanders. Typically, a cascade utilizes a single wide-port (containing multiple Phys) for connecting the expanders together with multiple physical connections.
Given the unique port configurations for the Host and Target devices, special cables are used to properly connect the system devices together. Cables can be expensive, and the designer of a system must know whether the devices are Host or Target to ensure that they are properly connected. Another problem arises in identifying the type of cable; the straight and cross-over cables appear exactly the same. Therefore, the technician must know the configuration of the devices, and must keep track of which cables are straight and crossed-over.
FIG. 1 illustrates an exemplary conventional SAS expander network 100. FIG. 1 shows an initiator (I0) 102 connected via multiple lines to a cascade of SAS expanders, E0, E1 and E2 through ports 104 on each expander. Attached to each SAS expander may be one or more SAS or SATA drives D0, D1 and D2 through port 106 or 108. The initiator 102 and SAS expanders E0, E1, and E2 are Hosts, while the SAS or SATA drives D0, D1, and D2 are Target devices. When one of the expanders is connected to a drive, a conventional straight cable is used, as the transmit and receive lines of these devices are properly paired. However, when two Host devices are connected, such as the initiator to an expander or an expander to another expander, a crossover cable is required. If the initiator is connected to an expander with a straight cable, the transmit lines of both devices would be connected together, which would violate protocol and potentially harm one of the devices.
The current system presents problems for system designers. When creating a new system, the system designer must carefully plan the required expanders and drives and ensure the configurations are connected properly. A designer must specify the Phy configurations of their system when designing the system. Generally, a designer will designate a number of Phys as Target and another number as Host Phys. Therefore, when a specific Phy is required in the future, there is an available location for whatever device is needed. However, this requires extra space within the system, extra parts, and leaves ports unused, as they are specifically dedicated to a certain type of device. Adding to this problem when additional ports are not available, altering a system by changing the connection between a Host to a Target would require a changing the port, which requires rewiring the Phys, or changing the cables. However, all these alternatives are expensive and time consuming.
Another problem can arise from simple human error. When a technician makes the proper connection between the various system devices, the proper cables must be used. Since the straight and crossover cables appear exactly the same, it is easy for a technician to inadvertently connect two devices with the wrong cable. First, the system would not work properly, and the technician would have to spend time trouble shooting the set up to find the improper connection. Using an improper cable would also violate protocol and connect two transmit lines together from opposing devices. This could potentially harm these devices as the transmit lines were not intended to receive an input. At a minimum, the improper connection would prevent the device or system from working properly.
Finally, in Fibre Channel (EC), all cables are assumed to be crossover cables, all ports are simply “device” ports, and no special cables are ever needed for normal configuration. Migrating to SAS, where there are different kinds of cables and different kinds of ports, can be a barrier to consumers.